odstraneni prehravani defaultniho zvuku Windows pri OnKeyDown udalosti
Otázka od: Martin Kozusky
21. 10. 2002 10:38
Ahoj,
nevite nekdo jak odstranit prehravani defatultniho zvuku windows, kdyz mam v
Editu v udalosti OnKeyDown napsane toto:
---
if key=vk_Return then b_answer.Click;
--
vzdy, kdyz potom v tom editu zmacknu enter, zahraje ten zvuk nechci
vypinat zvuky windows, jde to odstranit nejak jinak?
Diky,
Martin
Odpovedá: ing. Jan Fiala
21. 10. 2002 10:53
udalosti
21.10.2002 Martin Kozusky:
> Ahoj,
> nevite nekdo jak odstranit prehravani defatultniho zvuku windows, kdyz mam v
> Editu v udalosti OnKeyDown napsane toto:
> ---
> if key=vk_Return then b_answer.Click;
> --
if key=vk_Return then
begin
b_answer.Click;
Key := 0;
end;
--
ing. Jan Fiala
mailto:jan.fiala@iol.cz
Odpovedá: Ondrej Kelle
21. 10. 2002 11:34
udalosti
> nevite nekdo jak odstranit prehravani defatultniho zvuku
> windows, kdyz mam v
> Editu v udalosti OnKeyDown napsane toto:
>
> ---
> if key=vk_Return then b_answer.Click;
> --
>
> vzdy, kdyz potom v tom editu zmacknu enter, zahraje ten zvuk
> nechci
> vypinat zvuky windows, jde to odstranit nejak jinak?
Ahoj, najjednoduchsie to bude asi takto:
type
TForm1 = class(TForm)
private
procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY;
end;
implementation
procedure TForm1.CMDialogKey(var Message: TCMDialogKey);
begin
with Message do
if (CharCode = VK_RETURN) and (KeyDataToShiftState(KeyData) = []) and
(ActiveControl = Edit1) then
begin
with TMessage(Message) do
Edit1.Perform(WM_KEYDOWN, WParam, LParam);
Result := 1;
end
else
inherited;
end;
HTH
TOndrej
Odpovedá: ing. Jan Fiala
21. 10. 2002 12:22
udalosti
21.10.2002 Ondrej Kelle:
>> nevite nekdo jak odstranit prehravani defatultniho zvuku
>> windows, kdyz mam v
>> Editu v udalosti OnKeyDown napsane toto:
>>
>> vzdy, kdyz potom v tom editu zmacknu enter, zahraje ten zvuk
>> nechci
>> vypinat zvuky windows, jde to odstranit nejak jinak?
> Ahoj, najjednoduchsie to bude asi takto:
> type
> TForm1 = class(TForm)
> private
> procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY;
> end;
> implementation
> procedure TForm1.CMDialogKey(var Message: TCMDialogKey);
> begin
> with Message do
> if (CharCode = VK_RETURN) and (KeyDataToShiftState(KeyData) = []) and
> (ActiveControl = Edit1) then
> begin
> with TMessage(Message) do
> Edit1.Perform(WM_KEYDOWN, WParam, LParam);
> Result := 1;
> end
> else
> inherited;
> end;
To mi pripomina ten povestny clanek o reseni odeslani e-mailu na
od programatora po reditele na Unixu.
Tohle je tak na urovni vedouciho projektu
--
ing. Jan Fiala
mailto:jan.fiala@iol.cz
Odpovedá: Ondrej Kelle
21. 10. 2002 12:30
udalosti
> To mi pripomina ten povestny clanek o reseni odeslani e-mailu na
> od programatora po reditele na Unixu.
> Tohle je tak na urovni vedouciho projektu
Vdaka za uznanie, ale aspon to funguje, na rozdiel od Tvojho kodu
Da sa to riesit aj inak, ale ako som pisal, tento sposob mi pripada
najjednoduchsi.
HTH
TOndrej
Odpovedá: Jiri Foldyna
21. 10. 2002 12:57
udalosti
> > Ahoj,
> > nevite nekdo jak odstranit prehravani defatultniho zvuku
> windows, kdyz mam v
> > Editu v udalosti OnKeyDown napsane toto:
>
> > ---
> > if key=vk_Return then b_answer.Click;
> > --
>
> if key=vk_Return then
> begin
> b_answer.Click;
> Key := 0;
> end;
Ahoj,
tohle nestaci, je treba obslouzit podobne jeste OnKeyPress (tusim, ze Key :=
#0).
Jiri Foldyna
mailto:jiri.f@avizo.cz
Odpovedá: ing. Jan Fiala
21. 10. 2002 13:23
udalosti
21.10.2002 Ondrej Kelle:
>> To mi pripomina ten povestny clanek o reseni odeslani e-mailu na
>> od programatora po reditele na Unixu.
>> Tohle je tak na urovni vedouciho projektu
> Vdaka za uznanie, ale aspon to funguje, na rozdiel od Tvojho kodu
Pokud jsem pochopil, jde mu o pipnuti po stisku Enter.
Moje chyba byla, ze jsem prehledl, ze je to v OnKeyDown.
Staci umistit kod do OnKeyPress a uz to fungovat bude.
if Key = Chr(VK_RETURN) then
begin
Button1.Click;
Key := #0;
end;
--
ing. Jan Fiala
mailto:jan.fiala@iol.cz
Odpovedá: David Michal
21. 10. 2002 12:38
udalosti
Zdravim,
Ten jeho kod funguje take.
Jen je treba psat key := Char(0); a ne pouze key := 0;
Preci jen mi tento radek prijde jednodusi. A pouzivam to take.
David
Vdaka za uznanie, ale aspon to funguje, na rozdiel od Tvojho kodu
Da sa to riesit aj inak, ale ako som pisal, tento sposob mi pripada
najjednoduchsi.
HTH
TOndrej
---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.404 / Virus Database: 228 - Release Date: 15/10/2002
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.404 / Virus Database: 228 - Release Date: 15/10/2002
Odpovedá: Ondrej Kelle
21. 10. 2002 12:44
udalosti
> Pokud jsem pochopil, jde mu o pipnuti po stisku Enter.
>
> Moje chyba byla, ze jsem prehledl, ze je to v OnKeyDown.
> Staci umistit kod do OnKeyPress a uz to fungovat bude.
>
> if Key = Chr(VK_RETURN) then
> begin
> Button1.Click;
> Key := #0;
> end;
Mas pravdu, tak je to jednoduchsie
Hlboko otraseny davam vypoved a idem hladat nejaku menezersku poziciu. :-P
Ale vazne, bolo to poucne. Diky.
Prajem krasny den s Delphi...
TOndrej